In many data systems, data records are displayed to users using a grid or other type of flat data structure. A grid has the advantage of being able to display large numbers of records at once. Records in a grid may be sorted by column (e.g., name, ID number, amount) to allow for easier analysis of the data.
However, there are a number of disadvantages to displaying data in a grid that occur when the data is hierarchical in form. Hierarchal data may comprise any data with parent/child relationships, such as a list of accounts having a parent/child structure. When displaying large volumes of hierarchical data in a grid, it can be difficult for a user to analyze and make use of the displayed data. Traditionally this can be mitigated by allowing the data to be filtered, reducing the amount of data displayed and isolating levels in the hierarchy that the user wishes to view. Unfortunately, this also obscures any hierarchical relationship between the levels. This problem is further exacerbated by large record sets, as it becomes difficult to view portions of any given level in the hierarchy at one time or to isolate child records of particular parent records.
Therefore, there is a need for a system for displaying hierarchical data that allows users to traverse the levels of the hierarch while maintaining the relationships between levels.